package com.ruoyi.performance.mapper;

import com.ruoyi.performance.domain.PerfCheckType;
import com.ruoyi.performance.domain.PerfCheckTypeSupplier;
import com.ruoyi.performance.domain.PerfDirectScore;
import com.ruoyi.performance.dto.PerfCheckTypeDto;
import com.ruoyi.performance.dto.PerfCheckTypeSupplierDto;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author YL
 * @date 2020-07-22
 * @description 考核类别接口
 */
@Mapper
public interface PerfCheckTypeMapper {
    /**
     * 查询考核类别
     *
     * @return 考核类别
     */
    List<PerfCheckType> selectPerfCheckType(PerfCheckTypeDto perfCheckTypeDto);

    /**
     * 查询考核类别
     * 
     * @param id 考核类别ID
     * @return 考核类别
     */
    PerfCheckType selectPerfCheckTypeById(int id);

    /**
     * 根据类别查询供应商
     *
     * @param checkTypeId 考核类别ID
     * @return 考核类别
     */
    List<PerfCheckTypeSupplierDto> selectPerfCheckTypeSupplierDtoById(int checkTypeId);

    /**
     * 新增考核类别
     * 
     * @param perfCheckType 考核类别
     * @return 结果
     */
    int insertPerfCheckType(PerfCheckTypeDto perfCheckTypeDto);

    /**
     * 新增考核类别关联供应商
     *
     * @param perfCheckTypeSupplier 考核类别
     * @return 结果
     */
    int insertPerfCheckTypeSupplier(PerfCheckTypeSupplier perfCheckTypeSupplier);

    /**
     * 修改考核类别
     * 
     * @param perfCheckType 考核类别
     * @return 结果
     */
    int updatePerfCheckType(PerfCheckType perfCheckType);
    
    
    /**
     * 删除前检查类别是否已在考核单中使用
     * @param categorycode
     * @return 已使用  count = 1 true
     */
    public boolean checkTypeUse(int id);

    /**
     * 删除考核类别
     *
     * @param id 考核类别
     * @return 结果
     */
    int deletePerfCheckType(int id);

    /**
     * 删除考核类别关联供应商
     *
     * @param id 考核类别
     * @return 结果
     */
    int deletePerfCheckTypeSupplier(int id);
    
    /**
     * 删除供应商
     *
     * @param id 考核类别
     * @return 结果
     */
    public int deleteSupplier(int id);

}
